class Solution {
public:
    int getMaxLen(vector<int>& nums) {
        int n =nums.size();
        vector<int> f(n+1);
        auto g =f;
        int ret = INT_MIN;
        for(int i=1;i<n+1;i++)
        {
            if(nums[i-1]>0)
            {
                f[i] = f[i-1]+1;
                g[i] = g[i-1]==0?0:g[i-1]+1;
            }
            else if(nums[i-1]<0)
            {
                f[i] = g[i-1]==0?0:g[i-1]+1;
                g[i] = f[i-1]+1;
            }
            if(ret<f[i])
                ret = f[i];
        }
        return ret;
    }
};